package com.oyjd.ybx.business.msg.service;

import java.io.File;
import java.util.List;
import java.util.Map;

import com.oyjd.ybx.bean.vo.InformationVO;
import com.oyjd.ybx.fw.action.Page;

/**
 * 
 * 资讯信息业务接口
 * 
 * @author <b>欧建东<br/>
 *         Email:oyjd@163.com</b>
 * @version 1.0
 */
public interface MsgService {
	/**
	 * 获取资讯信息列表数据
	 * 
	 * @param page
	 *            页面对象
	 * @return
	 */
	Page<InformationVO> getList(Page<InformationVO> page);

	/**
	 * 根据ID获取资讯信息对象信息
	 * 
	 * @param id
	 *            ID
	 * @return
	 */
	InformationVO getInformationVO(String msgId);
	
	/**
	 * 统计浏览量
	 * 
	 * @param msgId
	 *            文章ID
	 * @param ip
	 *            请求地址
	 */
	void countLook(String msgId, String ip);

	/**
	 * 增加资讯信息
	 * 
	 * @param classId
	 *            分类ID
	 * @param msgTitle
	 *            资讯标题
	 * @param msgContent
	 *            资讯内容
	 * @param fileName
	 *            图片名
	 * @param file
	 *            图片文件
	 * @param user
	 *            当前用户
	 */
	void add(String classId, String msgTitle, String msgContent, String fileName, File file, String user) throws Exception;

	/**
	 * 修改资讯信息
	 * 
	 * @param msgId
	 *            资讯ID
	 * @param classId
	 *            分类ID
	 * @param msgTitle
	 *            资讯标题
	 * @param msgContent
	 *            资讯内容
	 * @param fileName
	 *            图片名
	 * @param file
	 *            图片文件
	 */
	void edit(String msgId, String classId, String msgTitle, String msgContent, String fileName, File file) throws Exception;

	/**
	 * 删除资讯信息
	 * 
	 * @param ids
	 *            多个ID
	 * @return
	 */
	void remove(String[] ids);

	/**
	 * 获取前端资讯
	 * 
	 * @return
	 */
	Map<String, List<InformationVO>> getFrontInfo();

	/**
	 * 获取前端资讯从数据库中
	 * 
	 * @return
	 */
	void getFrontInfoByDb();

	/**
	 * 随机获取特定类型知识
	 * 
	 * @param classId
	 *            顶级大类型
	 * @param size
	 *            获取资讯数量
	 * @return
	 */
	List<InformationVO> getRandMsg(String classId, int size);
}
